Logo ICT-BZ

Rhythm_Strike

Kurzinfo

Themenbereich

Softwareentwicklung

Lernende/r

Damir Kharakhursakh

Lehrbetrieb

CSS Versicherung

Betreuer

Urs Nussbaumer, Manuel Gut

Projekt-Website

Rhythm_Strike auf itch.io

Aufgabenstellung

Das Ziel dieses Projekts war die Entwicklung eines interaktiven 4-Lane-Rhythmus-Spiels im Unity. Die Ausgangslage war der Wunsch, ein Spiel zu kreieren, das Musik und Gameplay präzise synchronisiert. Dabei sollten Songs implementiert werden, bei denen der Spieler im Takt herabfallende Noten treffen muss, um Punkte zu erzielen und Highscores zu knacken.

Ergebnisse

Das Endprodukt ist ein voll funktionsfähiges Musikspiel mit 3 Levels. Zu den wichtigsten Funktionen gehören ein dynamisches Scoring-System mit Hit-Feedback, ein persistentes Einstellungsmenü für die Lautstärkeregelung sowie ein integrierter Song-Recorder für die Erstellung neuer Spielinhalte. Das Spiel wurde erfolgreich für WebGL optimiert und ist nun direkt im Browser auf itchIo spielbar.

Lösungskonzept

Die Lösung wurde objektorientiert in C# aufgebaut. Das Herzstück bildet ein Synchronisations-System, das auf Timestamps basiert, um Audio und Visuals abzugleichen. Zur Datenverwaltung wurden ScriptableObjects verwendet, die die Noten-Daten effizient speichern. Das User Interface nutzt TextMeshPro für eine scharfe Darstellung und Responsive-Layout-Komponenten, um verschiedene Bildschirmauflösungen zu unterstützen.

Aufgetretene Probleme

Eine grosse Herausforderung war die Datenpersistenz beim Recording-System; Noten wurden zunächst nur im Cache gespeichert und gingen beim Schliessen verloren. Dies wurde durch den Einsatz von SetDirty-Funktionen behoben. Zudem gab es Schwierigkeiten mit der Skalierung der Benutzeroberfläche auf verschiedenen Monitoren, was durch eine korrekte Implementierung des Canvas Scalers gelöst wurde.

Ausblick

In einer zukünftigen Version könnte das Projekt um ein globales Online-Leaderboard und ein Benutzer-Login-System erweitert werden, um den kompetitiven Aspekt zu stärken. Zudem wäre die Implementierung eines dynamischen Hintergrund-Shaders denkbar, der sich visuell dem Rhythmus der Musik anpasst.